// global.buffer

// 示例类似整数数组 用于保存二进制数据流
// 在V8堆外分配物理内存 Buffer大小创建时确定 无法调整

/**
 * 打印控制台
 * @param {*} args
 */
function log(...args) {
  console.log.apply(console, args); //eslint-disable-line
}

// 构造
log(Buffer.alloc(4));
// <Buffer 00 00 00 00>
log(Buffer.alloc(8));
// <Buffer 00 00 00 00 00 00 00 00>
log(Buffer.alloc(5, 1));
// <Buffer 01 01 01 01 01>
log(Buffer.allocUnsafe(5, 1));
// <Buffer 00 00 00 00 00>
log(Buffer.from([1, 2, 3]));
// <Buffer 01 02 03>
log(Buffer.from('test')); // 默认utf8
// <Buffer 74 65 73 74>
log(Buffer.from('test', 'base64'));
// <Buffer 74 65 73 74>

// 调用 Buffer.alloc() 会明显地比另一个方法 Buffer.allocUnsafe() 慢，
//但是能确保新建的 Buffer 实例的内容不会包含敏感数据。

// 类方法：Buffer.allocUnsafe(size)#

// size <integer> 新建的 Buffer 期望的长度

// 以这种方式创建的 Buffer 实例的底层内存是未初始化的。
//新创建的 Buffer 的内容是未知的，且可能包含敏感数据。
//可以使用 buf.fill(0) 初始化 Buffer 实例为0。
